package models

import (
	"gintest/database"
)

//表结构
type Config struct {
	Id        int    `json:"id" gorm:"column:id" form:"id"`
	Tag string `json:"tag" gorm:"column:tag" form:"tag"`
	Key  string `json:"key" gorm:"column:key" form:"key"`
	Value string `json:"value" gorm:"column:value" form:"value"`
	Desc string `json:"desc" gorm:"column:desc" form:"desc"`
}
func (Config) TableName() string {
	return "config"
}

func GetConfigList(page uint64,pagesize uint64,keyword string)(data []Config,total int){
	var offset=(page-1)*pagesize
		db:=database.SqlDB.Model(Config{})
		if len(keyword)!=0{
			db=db.Where("concat(tag,key) like ?","%"+keyword+"%")
		}
		db.Offset(offset).Limit(pagesize).Order("id desc").Find(&data)
		db.Count(&total)
	return data,total
}
func AddConfig(data *Config) error{
	return database.SqlDB.Model(Config{}).Create(data).Error
}
func GetConfigByKey(tag,key string) (config Config){
	database.SqlDB.Model(Config{}).Where("`tag`=? and `key`=?",tag,key).First(&config)
	return config
}
func GetConfigById(id int) (config Config){
	database.SqlDB.Model(Config{}).Where("id=?",id).First(&config);
	return config
}


func EditConfigById(id int,data interface{}) error{
	return database.SqlDB.Model(&Config{}).Where("id=?",id).Updates(data).Error
}

func DelConfigByIds(ids []int) error{
	return database.SqlDB.Model(Config{}).Where("id in (?)",ids).Delete(Config{}).Error
}
func GetConfigCount()(total int){
	database.SqlDB.Table("config").Count(&total)
	return
}
